]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
xdndHandler: Correctly disconnect the window group visibility handler
authorAdel Gadllah <adel.gadllah@gmail.com>
Fri, 4 Mar 2011 07:57:46 +0000 (08:57 +0100)
committerAdel Gadllah <adel.gadllah@gmail.com>
Fri, 4 Mar 2011 10:23:18 +0000 (11:23 +0100)
js/ui/xdndHandler.js

index d33f8afcef170a80da59c89b30cb8ef57326de90..fe8633abd6a9ff0ea0340c81a494fe25a882b428 100644 (file)
@@ -4,7 +4,6 @@ const Clutter = imports.gi.Clutter;
 const Lang = imports.lang;
 const Shell = imports.gi.Shell;
 const Signals = imports.signals;
-const Mainloop = imports.mainloop;
 const DND = imports.ui.dnd;
 
 function XdndHandler() {
@@ -41,9 +40,14 @@ XdndHandler.prototype = {
     // Called when the user cancels the drag (i.e release the button)
     _onLeave: function() {
         if (this._windowGroupVisibilityHandlerId != 0) {
-            Mainloop.source_remove(this._windowGroupVisibilityHandlerId);
+            global.window_group.disconnect(this._windowGroupVisibilityHandlerId);
             this._windowGroupVisibilityHandlerId = 0;
         }
+        if (this._cursorWindowClone) {
+            this._cursorWindowClone.destroy();
+            this._cursorWindowClone = null;
+        }
+
         this.emit('drag-end');
     },
 
@@ -77,8 +81,7 @@ XdndHandler.prototype = {
             // Make sure that the clone has the same position as the source
             this._cursorWindowClone.add_constraint(constraint_position);
         } else {
-            if (this._cursorWindowClone)
-            {
+            if (this._cursorWindowClone) {
                 this._cursorWindowClone.destroy();
                 this._cursorWindowClone = null;
             }